As with the introduction of many new technologies, the suffusion of program analysis into reverse engineering has been accompanied by confusion as to its capabilities. For my keynote speech at RECON 2012, I wanted to demonstrate that, in fact, program analysis can provide novel, generic, and powerful solutions to reverse engineering problems of practical concern. After introductory material motivating the subject, the speech focuses on three applications of abstract interpretation towards reverse engineering (namely, recovery of switch case labels, generic deobfuscation, and tracking of the stack pointer), followed by two applications based upon theorem proving (namely, automated key generator generation and equivalence checking for verification of deobfuscation results). The accompanying slides can be downloaded from http://www.openrce.org/blog/view/2182/ (or simply by searching the Internet for "The Case for Semantics-Based Methods in Reverse Engineering").